package com.dragonfly.shutter.beans;

import java.sql.Date;
import java.util.List;

import org.springframework.stereotype.Component;

/**
 * 图片bean
 * 2009.5.2修改字段size名称为pictureSize，原因：与oracle中的关键字冲突
 * @author 黄挺
 */
@Component
public class PictureDetail {
	private String pictureID;					//图片的ID
	private UserBrief picOwner = new UserBrief();				//图片所属者
	private String name;						//图片的名称
	private String originalName;				//图片的原始文件名
	private String location;					//图片的物理存储路径
	private int collectCount = 0;					//图片被收藏的次数
	private int totalScore = 0;						//图片的总评分
	private String description;					//图片的描述
	private String flagDelete = "No";					//图片的删除标记位
	private String flagCheck = "No";					//图片的审查标记位
	private String flagLimit = "public";					//图片的权限标记位
	private long pictureSize;							//图片的大小
	private int sizeX;							//图片的水平方向像素数
	private int sizeY;							//图片的垂直方向像素数
	private String copyright;					//图片的版权信息
	private String url;							//图片的站外链接
	private Date uploadTime;					//图片的上传时间
	private ImageEXIFInfo exifInfo;				//EXIF信息
	private List<Tag> pictureTags;				//图片标签
	private List<PicComment> comments;			//图片的评论列表
	private int scoreNumber = 0; 				//图片的评分人数
	private String thumbLocation;		//缩略图地址
	
	/**
	 * 获取图片ID
	 * @return 图片ID
	 */
	public String getPictureID() {
		return pictureID;
	}
	/**
	 * 设置图片的ID
	 * @param pictureID 要设置的图片ID
	 */
	public void setPictureID(String pictureID) {
		this.pictureID = pictureID;
	}
	/**
	 * 获取图片名称
	 * @return 图片名称
	 */
	public String getName() {
		return name;
	}
	/**
	 * 设置图片名称
	 * @param name 要设置的图片名称
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * 获取图片的原始文件名
	 * @return 图片原始文件名
	 */
	public String getOriginalName() {
		return originalName;
	}
	/**
	 * 设置图片原始文件名
	 * @param originalName 要设置的图片原始文件名
	 */
	public void setOriginalName(String originalName) {
		this.originalName = originalName;
	}
	/**
	 * 获取图片的物理存储路径
	 * @return 图片的物理存储路径
	 */
	public String getLocation() {
		return location;
	}
	/**
	 * 设置图片的物理存储路径
	 * @param location 要设置的图片的物理存储路径
	 */
	public void setLocation(String location) {
		this.location = location;
	}
	/**
	 * 获取图片的被收藏次数
	 * @return 图片的被收藏次数
	 */
	public int getCollectCount() {
		return collectCount;
	}
	/**
	 * 设置图片的被收藏次数
	 * @param collectCount 要设置的图片的被收藏次数
	 */
	public void setCollectCount(int collectCount) {
		this.collectCount = collectCount;
	}
	/**
	 * 获取图片的总评分
	 * @return 图片的总评分
	 */
	public int getTotalScore() {
		return totalScore;
	}
	/**
	 * 设置图片的总评分
	 * @param totalScore 要设置的图片总评分
	 */
	public void setTotalScore(int totalScore) {
		this.totalScore = totalScore;
	}
	/**
	 * 获取图片的描述
	 * @return 图片的描述
	 */
	public String getDescription() {
		return description;
	}
	/**
	 * 设置图片的描述
	 * @param description 要设置的图片的描述
	 */
	public void setDescription(String description) {
		this.description = description;
	}
	/**
	 * 获取图片的删除标记位
	 * @return 图片的删除标记位
	 */
	public String getFlagDelete() {
		return flagDelete;
	}
	/**
	 * 设置图片的删除标记位
	 * @param flagDelete 要设置的删除标记位
	 */
	public void setFlagDelete(String flagDelete) {
		this.flagDelete = flagDelete;
	}
	/**
	 * 获取图片的审查标记位
	 * @return 图片的审查标记位
	 */
	public String getFlagCheck() {
		return flagCheck;
	}
	/**
	 * 设置图片的审查标记位
	 * @param flagCheck 要设置的图片审查标记位
	 */
	public void setFlagCheck(String flagCheck) {
		this.flagCheck = flagCheck;
	}
	/**
	 * 获取图片的权限标记位
	 * @return 图片权限标记位
	 */
	public String getFlagLimit() {
		return flagLimit;
	}
	/**
	 * 设置图片的权限标记位
	 * @param flagLimit 要设置的图片的权限标记位
	 */
	public void setFlagLimit(String flagLimit) {
		this.flagLimit = flagLimit;
	}
	/**
	 * 获取图片水平方向像素数
	 * @return 图片水平方向像素数
	 */
	public long getSizeX() {
		return sizeX;
	}
	/**
	 * 设置图片水平方向像素数
	 * @param sizeX 要设置的水平方向像素数
	 */
	public void setSizeX(int sizeX) {
		this.sizeX = sizeX;
	}
	/**
	 * 获取图片的垂直方向像素数
	 * @return 图片的垂直方向像素数
	 */
	public int getSizeY() {
		return sizeY;
	}
	/**
	 * 设置图片的垂直方向像素数
	 * @param sizeY 要设置的垂直方向像素数
	 */
	public void setSizeY(int sizeY) {
		this.sizeY = sizeY;
	}
	/**
	 * 获取图片的版权信息
	 * @return 图片的版权信息
	 */
	public String getCopyright() {
		return copyright;
	}
	/**
	 * 设置图片的版权信息
	 * @param copyright 要设置的图片版权信息
	 */
	public void setCopyright(String copyright) {
		this.copyright = copyright;
	}
	/**
	 * 获取图片的站外链接地址
	 * @return 图片的站外链接地址
	 */
	public String getUrl() {
		return url;
	}
	/**
	 * 设置图片的站外链接地址
	 * @param url 要设置的图片站外链接地址
	 */
	public void setUrl(String url) {
		this.url = url;
	}
	/**
	 * 获取图片的上传时间
	 * @return 图片上传时间
	 */
	public Date getUploadTime() {
		return uploadTime;
	}
	/**
	 * 设置图片的上传时间
	 * @param uploadTime 要设置的图片上传时间
	 */
	public void setUploadTime(Date uploadTime) {
		this.uploadTime = uploadTime;
	}
	/**
	 * 设置图片的所属者
	 * @param picOwner 要设置的图片所属者
	 */
	public void setPicOwner(UserBrief picOwner) {
		this.picOwner = picOwner;
	}
	/**
	 * 获取图片的所属者
	 * @return 图片的所属者
	 */
	public UserBrief getPicOwner() {
		return picOwner;
	}
	/**
	 * 设置图片的标签
	 * @param pictureTags 要设置图片标签
	 */
	public void setPictureTags(List<Tag> pictureTags) {
		this.pictureTags = pictureTags;
	}
	/**
	 * 获取图片的标签
	 * @return 图片所有标签
	 */
	public List<Tag> getPictureTags() {
		return pictureTags;
	}
	/**
	 * 设置图片的评论列表
	 * @param comments 要设置的图片评论列表
	 */
	public void setComments(List<PicComment> comments) {
		this.comments = comments;
	}
	/**
	 * 获取图片评论列表
	 * @return 图片的评论列表
	 */
	public List<PicComment> getComments() {
		return comments;
	}
	/**
	 * 设置EXIF信息
	 * @param exifInfo 要设置的EXIF信息
	 */
	public void setExifInfo(ImageEXIFInfo exifInfo) {
		this.exifInfo = exifInfo;
	}
	/**
	 * 获取EXIF信息
	 * @return EXIF信息
	 */
	public ImageEXIFInfo getExifInfo() {
		return exifInfo;
	}
	/**
	 * @param scoreNumber the scoreNumber to set
	 */
	public void setScoreNumber(int scoreNumber) {
		this.scoreNumber = scoreNumber;
	}
	/**
	 * @return the scoreNumber
	 */
	public int getScoreNumber() {
		return scoreNumber;
	}
	/**
	 * @param pictureSize the pictureSize to set
	 */
	public void setPictureSize(long pictureSize) {
		this.pictureSize = pictureSize;
	}
	/**
	 * @return the pictureSize
	 */
	public long getPictureSize() {
		return pictureSize;
	}
	public void setThumbLocation(String thumbLocation) {
		this.thumbLocation = thumbLocation;
	}
	public String getThumbLocation() {
		return thumbLocation;
	}
}
